﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#if 0
void bubble_sort(int arr[], int sz)//参数接收数组元素个数
{
    int i = 0;
    //确定趟数
    for (i = 0; i < sz - 1; i++)
    {
        int j = 0;
        //一趟冒泡排序的过程
        for (j = 0; j < sz - i - 1; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                //交换
                int tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
}
int main()
{
    int arr[] = { 3,1,7,5,8,9,0,2,4,6 };
    int sz = sizeof(arr) / sizeof(arr[0]);//求数组元素个数
    bubble_sort(arr, sz);//传址调用

    for (int i = 0; i < sz; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}
#endif

#include<stdio.h>
void bubble_sort(int arr[], int sz)//参数接收数组元素个数
{
	int i = 0;
	//确定趟数
	for (i = 0; i < sz - 1; i++)
	{
		//一趟冒泡排序过程
		int flag = 1;//假设这⼀趟已经有序了
		int j = 0;
		for (j = 0; j < sz - i - 1; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				//交换
				flag = 0;//发⽣交换就说明，⽆序
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
		if (flag == 1)//这⼀趟没交换就说明已经有序，后续⽆序排序了
			break;
	}
}
int main()
{
	int arr[] = { 3,1,7,5,8,9,0,2,4,6 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	bubble_sort(arr, sz);
	for (int i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}